#ifndef __OLED_SPRINTF_H__
#define __OLED_SPRINTF_H__
#include "lcd.h"
#include <stdarg.h>
#include <stdio.h>
//#include <mpu6050.h>
#include "Gray_Sensor.h"
#include "my_uart.h"
#include "EEPROM.h"
#include "clock.h"
#include "WIT.h"
#include "mission.h"
#include "servo.h"
#include "cam.h"
#include "yb_motor.h"

#define MAX_LINE  11      // 行数（根据你的屏幕行数调整）
#define MAX_COL   20     // 每行最大字符数（根据屏幕宽度和字体宽度调整）
#define FONT_H    16     // 字体高度（单位：像素）
#define FONT_W    8      // 字体宽度（单位：像素）
#define WHITE     0xFFFF // 默认前景色
#define BLACK     0x0000 // 默认背景色
#define CURSOR_COL 1     // 光标列
#define MENU_PAGE 4       // 菜单页数

extern volatile uint8_t menu_mode;
extern uint8_t cursor_0;
extern uint8_t cursor_1;
extern uint8_t cursor_2;

void oled_sprintf(uint16_t line, uint16_t col, const char *format, ...);        // 原始直接写屏函数
void oled_sprintf_buffer(uint16_t line, uint16_t col, const char *format, ...); // 缓存更新函数
void lcd_proc(void);            // 屏幕逻辑更新（只更新缓存）
void lcd_refresh_task(void);   // 异步刷新一行到实际屏幕

#endif